package com.zeny.express.framework.scheduler.service;

import java.util.Collection;

import org.springframework.transaction.annotation.Transactional;

import com.zeny.express.framework.scheduler.entity.SchedulerInfoEntity;
import com.zeny.express.framework.scheduler.entity.SchedulerLogEntity;

/**
 * 调度日志服务
 * 
 * @author zhuwei
 * @date 2013年10月19日 下午6:15:13
 */
public interface SchedulerLogService {

	/**
	 * 查询当前调度实例所有调度信息并保存
	 * 
	 * @author zhuwei
	 * @date 2013年10月19日 下午6:15:24
	 * @param SchedulerName
	 * @param jobName
	 * @return
	 */
	void storeSchedulerInfos(String schedulerName);

	/**
	 * 通过jobName查询调度信息
	 * 
	 * @author zhuwei
	 * @date 2013年10月19日 下午6:15:24
	 * @param SchedulerName
	 * @param jobName
	 * @return
	 */
	Collection<SchedulerInfoEntity> querySchedulerInfos(String jobName);

	/**
	 * 通过jobId查询调度信息
	 * 
	 * @author zhuwei
	 * @date 2013年10月25日 上午9:35:59
	 * @param jobId
	 * @return
	 */
	SchedulerInfoEntity querySchedulerInfo(String jobId);

	/**
	 * 记录调度开始时间
	 * 
	 * @author zhuwei
	 * @date 2013年10月19日 下午6:16:08
	 * @param schedulerLog
	 */
	@Transactional
	void beginSchedulerLog(SchedulerLogEntity schedulerLog);

	/**
	 * 记录调度结束时间
	 * 
	 * @author zhuwei
	 * @date 2013年10月19日 下午6:16:17
	 * @param schedulerLog
	 */
	@Transactional
	void endSchedulerLog(SchedulerLogEntity schedulerLog);

}
